package com.bjsxt;

import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.URL;

public class InetTest00 {
    public static void main(String[] args) throws Exception{
        //实例化InetAddress对象  静态方法创建对象 不可以new
        InetAddress inetAddress = InetAddress.getLocalHost();
        //获取计算机Ip地址
        System.out.println(inetAddress.getHostAddress());
        System.out.println(inetAddress.getHostName());

        System.out.println("-------------");
        /*根据域名获取计算机信息时需要使用getByName("域名")方法创建InetAddress对象*/
        InetAddress inetAddress1 = InetAddress.getByName("www.baidu.com");
        System.out.println(inetAddress1.getHostAddress());
        System.out.println(inetAddress1.getHostName());

        System.out.println("--------------------");
        /**根据IP获取计算机的信息时需要使用getByName("IP")方法创建InetAddress*/
        InetAddress inetAddress2 = InetAddress.getByName("39.156.66.14");
        System.out.println(inetAddress2.getHostAddress());
        System.out.println(inetAddress2.getHostName());

        System.out.println("=====================");
       /**InetSocketAddress的使用
        * * 作用：包含IP和端口信息，常用于Socket通信，此类实现IP套接字地址（
 * IP地址+端口号，不依赖任何协议。）
 *   InetSocketAddress相比较InetAddress多了一个端口号，端口的作用：一台拥有IP地址
* 的主机可以提供许多服务，比如web服务，FTB服务，SMTP服务等，这些服务完全可以通过1
* 个IP地址来实现
*   主机是通过“IP地址+端口号”来区分不同的服务*/
        InetSocketAddress isa = new InetSocketAddress("www.baidu.com",80);
        //给域名与端口号  返回对应的IP地址
        System.out.println(isa.getAddress().getHostAddress());
        System.out.println(isa.getHostName());

        System.out.println("======================");
        /**URl类
         * IP地址标识了Internet上唯一的计算机，而URl则标识了这些计算机上的资源。
         * URL代表一个统一资源定位符，它是指向互联网“资源”的指针。资源可以是文件或目录，也
         * 可以是复杂的对象的引用。例如：数据库或搜索引艾擎的查询
         * 为了方便各程序员的编程，JDK中提供了URL类，就可以使用它的各种方法来对
         * URL对象进行分割、合并等处理*/
        //协议：https  端口默认是443   http 端口默认是80
        URL url = new URL("https://www.baidu.com/s?wd=itbaizhan&rsv_spt=1&rsv_iqid=0xea28e1340000017d&issp=1");
        System.out.println("获取与URL相关联协议的默认端口："+url.getDefaultPort());
        System.out.println("访问的资源："+url.getFile());
        System.out.println("主机名："+url.getHost());
        System.out.println("访问资源的路径："+url.getPath());
        System.out.println("协议："+url.getProtocol());
        System.out.println("参数部分："+url.getQuery());
    }
}
